/* Die Klasse Sprachverwaltung ist dafuer zustaendig, die Uebersetzung
 * in die vom Benutzer gewaehlte Sprache vorzunehmen. Dabei werden die 
 * Beschriftungen der Oberflaeche und die Fehlermeldungen jeweils in 
 * der gewaehlten Sprache ausgegeben bzw. angezeigt
 * 
 * 
 * Datei: Sprachverwaltung.java        Autor:   Antonia Wagner 
 * Datum: 03.12.11                     Version: 0.1 
 * 
 * Historie: 03.12.11 v0.1 von Autor erstellt, die Lokalisierung fuer
 *                         die graphische Oberflaeche von einem An-
 *                         schaffungsvorschlag eingefuegt, Fehlermel-
 *                         dungen eingefuegt
 *                         
 */

package personenverwaltung;

import basis.lokal.Lokalisierung;

public class Sprachverwaltung
{

  private Lokalisierung lokal;


  public Sprachverwaltung (String sprache)
  {
    if (sprache.toLowerCase ().equals ("deutsch"))
    {
      deutscheUebersetzung ();
    }
    else
    {
      if (sprache.toLowerCase ().equals ("englisch"))
      {
        englischeUebersetzung ();
      }
      else
      {
        if (sprache.toLowerCase ().equals ("franzoesisch"))
        {
          franzoesischeUebersetzung ();
        }
        else
        {
          throw new SpracheNichtVorhandenAusnahme ();
        }
      }
    }
  }


  /**
   * Erzeugt die deutsche Uebersetzung der Oberflaechen und
   * Fehlermeldungen
   */
  private void deutscheUebersetzung ()
  {
    lokal = new Lokalisierung ("Deutsch");

    /*
     * Felder und Schaltflaechen fuer den Anschaffungsvorschlag
     */
    lokal.uebersetzungHinzufuegen ("Benutzer", "Benutzer ID");
    lokal.uebersetzungHinzufuegen ("Titel", "Titel");
    lokal.uebersetzungHinzufuegen ("Verlag", "Verlag");
    lokal.uebersetzungHinzufuegen ("Erscheinungsjahr",
        "Erscheinungsjahr");
    lokal.uebersetzungHinzufuegen ("Anzahl Exemplare",
        "Anzahl der Exemplare");
    lokal.uebersetzungHinzufuegen ("Autor", "Autor");
    lokal.uebersetzungHinzufuegen ("Auflage", "Auflage");
    lokal
        .uebersetzungHinzufuegen ("Erscheinungsort", "Erscheinungsort");
    lokal.uebersetzungHinzufuegen ("ISBN", "ISBN");
    lokal.uebersetzungHinzufuegen ("Preis", "Stueckpreis");
    lokal.uebersetzungHinzufuegen ("Anzahl Exemplare Lesehalle",
        "Anzahl der Exemplare fuer die Lesehalle");
    lokal.uebersetzungHinzufuegen ("Bemerkung", "Bemerkung");
    lokal.uebersetzungHinzufuegen ("absenden", "Vorschlag absenden");
    lokal.uebersetzungHinzufuegen ("loeschen", "Felder zuruecksetzen");

    /*
     * Fehlermeldungen
     */
    lokal.uebersetzungHinzufuegen ("Pflichtfeld nicht ausgefuellt",
        "Mindestens ein Pflichtfeld ist nicht ausgefuellt. "
            + "Bitte alle Pflichtfelder ausfuellen!");
    lokal.uebersetzungHinzufuegen ("Fehler", "Fehler");
    lokal.uebersetzungHinzufuegen ("Nur Ziffern",
        "Bitte verwenden Sie nur Zahlen als Eingabe.");
    lokal.uebersetzungHinzufuegen ("Erfolgreich abgesendet",
        "Der Anschaffungsvorschlag wurde erfolgreich abgesendet.\n"
            + "Vielen Dank");
    lokal.uebersetzungHinzufuegen ("Info", "Information");
    lokal.uebersetzungHinzufuegen ("Ungueltiger Benutzer",
        "Die Benutzer-ID ist ungueltig.\n"
            + "Bitte versuchen Sie es erneut!");
    lokal.uebersetzungHinzufuegen ("Exemplar nicht gefunden",
        "Das gesuchte Exemplar konnte nicht gefunden werden!");
    lokal.uebersetzungHinzufuegen ("Altes Passwort falsch",
        "Das alte Passwort ist falsch!");
    lokal.uebersetzungHinzufuegen ("Ungueltiger Tag",
        "Der eingegebene Tag ist ungueltig!");
    lokal.uebersetzungHinzufuegen ("Ungueltiger Monat",
        "Der eingegebene Monat ist ungueltig!");
    lokal.uebersetzungHinzufuegen ("Ungueltiges Jahr",
        "Das eingegebene Jahr muss groesser 0 sein!");
    lokal.uebersetzungHinzufuegen ("Ungueltige Stunde",
        "Die Stunde ist ungueltig!");
    lokal.uebersetzungHinzufuegen ("Ungueltige Sekunde",
        "Die eingegebene Sekunde ist ungueltig!");
    lokal.uebersetzungHinzufuegen ("Ungueltige Minute",
        "Die eingegebene Minute ist ungueltig!");
    lokal.uebersetzungHinzufuegen (
        "Mahnung bezahlen nicht implementiert",
        "Das Bezahlen einer Mahnung ist nicht implementiert.");
    lokal.uebersetzungHinzufuegen ("Ausleihe Speicherfehler",
        "Die Ausleih-Liste konnte nicht gespeichert werden.");
    lokal.uebersetzungHinzufuegen ("Rueckgabe Speicherfehler",
        "Die Rueckgabe-Liste konnte nicht gespeichert werden.");
    lokal.uebersetzungHinzufuegen ("Reservierung Speicherfehler",
        "Die Reservierungs-Liste konnte nicht gespeichert werden.");
    lokal.uebersetzungHinzufuegen ("Vorschlag Speicherfehler",
        "Die Vorschlags-Liste konnte nicht gespeichert werden.");
    lokal.uebersetzungHinzufuegen ("Person Speicherfehler",
        "Die Personen-Liste konnte nicht gespeichert werden.");
    lokal.uebersetzungHinzufuegen ("Benutzer Speicherfehler",
        "Die Benutzer-Liste konnte nicht gespeichert werden.");
    lokal.uebersetzungHinzufuegen ("Falscheingabe Name",
        "Mindestens ein Zeichen des eingegebenen Namens ist nicht "
            + "gueltig!\nBitte versuchen Sie es erneut.");
    lokal.uebersetzungHinzufuegen ("Passwortwiederholung falsch",
        "Das neue Passwort und die Passwort-Wiederholung stimmen nicht "
            + "ueberein");
    lokal.uebersetzungHinzufuegen ("Buch ausgeliehen",
        "Das Buch ist bereits ausgeliehen!");
    lokal.uebersetzungHinzufuegen ("Mahngebuehr bezahlt",
        "Die Mahngebuehr ist verbucht.\n Offener Betrag: ");
    lokal.uebersetzungHinzufuegen ("Praesenzexemplar nicht ausleihbar",
        "Praesenzexemplare koennen nicht ausgeliehen werden!");
    lokal.uebersetzungHinzufuegen ("Reserviert",
            "Das Exemplar ist reserviert, die Ausleihe " + 
			"kann nicht verlaengert werden!");
  }


  /**
   * Erzeugt die englische Uebersetzung der Oberflaechen und
   * Fehlermeldungen
   */
  private void englischeUebersetzung ()
  {
    lokal = new Lokalisierung ("Englisch");

    /*
     * Felder und Schaltflaechen fuer den Anschaffungsvorschlag
     */
    lokal.uebersetzungHinzufuegen ("Benutzer", "user id");
    lokal.uebersetzungHinzufuegen ("Titel", "title");
    lokal.uebersetzungHinzufuegen ("Verlag", "publisher");
    lokal.uebersetzungHinzufuegen ("Erscheinungsjahr",
        "year of publication");
    lokal.uebersetzungHinzufuegen ("Anzahl Exemplare",
        "number of copies");
    lokal.uebersetzungHinzufuegen ("Autor", "author");
    lokal.uebersetzungHinzufuegen ("Auflage", "edition");
    lokal.uebersetzungHinzufuegen ("Erscheinungsort",
        "place of publication");
    lokal.uebersetzungHinzufuegen ("ISBN", "ISBN");
    lokal.uebersetzungHinzufuegen ("Preis", "price per unit");
    lokal.uebersetzungHinzufuegen ("Anzahl Exemplare Lesehalle",
        "number of copies for reading room");
    lokal.uebersetzungHinzufuegen ("Bemerkung", "comment");
    lokal.uebersetzungHinzufuegen ("absenden", "send acquisition "
        + "request");
    lokal.uebersetzungHinzufuegen ("loeschen", "clear");

    /*
     * Fehlermeldungen
     */
    lokal.uebersetzungHinzufuegen ("Pflichtfeld nicht ausgefuellt",
        "At least one required field is not completed. Please fill out"
            + " all required fields!");
    lokal.uebersetzungHinzufuegen ("Fehler", "Error");
    lokal.uebersetzungHinzufuegen ("Nur Ziffern",
        "Please use only numbers as input.");
    lokal.uebersetzungHinzufuegen ("Erfolgreich abgesendet",
        "The acquisition proposal was submitted successfully.\n"
            + "Thank you very much");
    lokal.uebersetzungHinzufuegen ("Info", "information");
    lokal.uebersetzungHinzufuegen ("Ungueltiger Benutzer",
        "The user ID is invalid.\nPlease try again!");
    lokal.uebersetzungHinzufuegen ("Exemplar nicht gefunden",
        "The requested copy could not be found!");
    lokal.uebersetzungHinzufuegen ("Altes Passwort falsch",
        "The old password is incorrect!");
    lokal.uebersetzungHinzufuegen ("Ungueltiger Tag",
        "The input day is invalid!");
    lokal.uebersetzungHinzufuegen ("Ungueltiger Monat",
        "The given month is invalid!");
    lokal.uebersetzungHinzufuegen ("Ungueltiges Jahr",
        "The entered year must be greater than 0!");
    lokal.uebersetzungHinzufuegen ("Ungueltige Stunde",
        "The hour is invalid!");
    lokal.uebersetzungHinzufuegen ("Ungueltige Sekunde",
        "The entered second is invalid");
    lokal.uebersetzungHinzufuegen ("Ungueltige Minute",
        "The entered minutes are invalid!");
    lokal.uebersetzungHinzufuegen (
        "Mahnung bezahlen nicht implementiert",
        "The payment of a reminder is not implemented.");
    lokal.uebersetzungHinzufuegen ("Ausleihe Speicherfehler",
        "The lending list could not be saved.");
    lokal.uebersetzungHinzufuegen ("Rueckgabe Speicherfehler",
        "Returning the list could not be saved.");
    lokal.uebersetzungHinzufuegen ("Reservierung Speicherfehler",
        "The reservation list could not be saved.");
    lokal.uebersetzungHinzufuegen ("Vorschlag Speicherfehler",
        "The proposed list could not be saved.");
    lokal.uebersetzungHinzufuegen ("Person Speicherfehler",
        "The list of persons could not be saved.");
    lokal.uebersetzungHinzufuegen ("Benutzer Speicherfehler",
        "The user list could not be saved.");
    lokal.uebersetzungHinzufuegen ("Falscheingabe Name", "At least "
        + "one type of name you entered is not valid!\n"
        + "Please try again.");
    lokal.uebersetzungHinzufuegen ("Passwortwiederholung falsch",
        "The new password and the repeated password do not match.");
    lokal.uebersetzungHinzufuegen ("Buch ausgeliehen",
        "The book is already on loan!");
    lokal.uebersetzungHinzufuegen ("Mahngebuehr bezahlt",
        "Fines will be charged.\nAmount requested: ");
    lokal.uebersetzungHinzufuegen ("Praesenzexemplar nicht ausleihbar",
        "Copies from reading Room cannot be borrowed!");
    lokal.uebersetzungHinzufuegen ("Reserviert",
        "This copy is reserved, the loan can not be extended!");
  }


  /**
   * Erzeugt die franzoesische Uebersetzung der Oberflaechen und
   * Fehlermeldungen
   */
  private void franzoesischeUebersetzung ()
  {
    lokal = new Lokalisierung ("Franzoesisch");

    /*
     * Felder und Schaltflaechen fuer den Anschaffungsvorschlag
     */
    lokal.uebersetzungHinzufuegen ("Benutzer", "client ID");
    lokal.uebersetzungHinzufuegen ("Titel", "intitule");
    lokal.uebersetzungHinzufuegen ("Verlag", "editeur");
    lokal.uebersetzungHinzufuegen ("Erscheinungsjahr",
        "annee de parution");
    lokal.uebersetzungHinzufuegen ("Anzahl Exemplare",
        "nombre exemplaire");
    lokal.uebersetzungHinzufuegen ("Autor", "auteur");
    lokal.uebersetzungHinzufuegen ("Auflage", "edition");
    lokal.uebersetzungHinzufuegen ("Erscheinungsort",
        "lieu d'apparition");
    lokal.uebersetzungHinzufuegen ("ISBN", "numero ISBN");
    lokal.uebersetzungHinzufuegen ("Preis", "prix unitaire");
    lokal.uebersetzungHinzufuegen ("Anzahl Exemplare Lesehalle",
        "nombre reference copie");
    lokal.uebersetzungHinzufuegen ("Bemerkung", "observation");
    lokal.uebersetzungHinzufuegen ("absenden", "envoyez demande "
        + "d'acquisition");
    lokal.uebersetzungHinzufuegen ("loeschen", "claires");

    /*
     * Fehlermeldungen
     */
    lokal.uebersetzungHinzufuegen ("Pflichtfeld nicht ausgefuellt",
        "Au moins un champ n'est pas remplie. S'il vous plait remplir "
            + "tous les champs requis!");
    lokal.uebersetzungHinzufuegen ("Fehler", "Erreur");
    lokal.uebersetzungHinzufuegen ("Nur Ziffern",
        "S'il vous plait utiliser uniquement des nombres en entree.");
    lokal.uebersetzungHinzufuegen ("Erfolgreich abgesendet",
        "La proposition d'acquisition a ete soumise avec succes.\n"
            + "Merci beaucoup!");
    lokal.uebersetzungHinzufuegen ("Info", "information");
    lokal.uebersetzungHinzufuegen ("Ungueltiger Benutzer", "L'ID "
        + "utilisateur est incorrect.\nS'il vous plait essayez "
        + "de nouveau!");
    lokal.uebersetzungHinzufuegen ("Exemplar nicht gefunden",
        "La copie demandee n'a pas pu etre trouve!");
    lokal.uebersetzungHinzufuegen ("Altes Passwort falsch",
        "L'ancien mot de passe est incorrect!");
    lokal.uebersetzungHinzufuegen ("Ungueltiger Tag",
        "La balise d'entree n'est pas valide!");
    lokal.uebersetzungHinzufuegen ("Ungueltiger Monat",
        "Le mois donne n'est pas valide!");
    lokal.uebersetzungHinzufuegen ("Ungueltiges Jahr",
        "L'annee doit etre entre superieur a 0!");
    lokal.uebersetzungHinzufuegen ("Ungueltige Stunde",
        "L'heure est invalide!");
    lokal.uebersetzungHinzufuegen ("Ungueltige Sekunde",
        "Entre le second est invalide");
    lokal.uebersetzungHinzufuegen ("Ungueltige Minute",
        "Le proces-verbal entre n'est pas valide!");
    lokal.uebersetzungHinzufuegen (
        "Mahnung bezahlen nicht implementiert",
        "Le paiement d'un rappel n'est pas mis en oeuvre.");
    lokal.uebersetzungHinzufuegen ("Ausleihe Speicherfehler",
        "La liste des prets n'a pas pu etre sauve.");
    lokal.uebersetzungHinzufuegen ("Rueckgabe Speicherfehler",
        "De retour de la liste ne pouvaient pas etre sauves.");
    lokal.uebersetzungHinzufuegen ("Reservierung Speicherfehler",
        "La liste de reservation n'a pas pu etre sauve.");
    lokal.uebersetzungHinzufuegen ("Vorschlag Speicherfehler",
        "La liste proposee ne pouvait pas etre sauve.");
    lokal.uebersetzungHinzufuegen ("Person Speicherfehler",
        "La liste des personnes ne pouvaient pas etre sauves.");
    lokal.uebersetzungHinzufuegen ("Benutzer Speicherfehler",
        "La liste des utilisateurs ne pouvaient pas etre sauves.");
    lokal.uebersetzungHinzufuegen ("Falscheingabe Name", "Au moins un "
        + "type de nom que vous avez entre n'est pas valide!\n"
        + "S'il vous plait essayez de nouveau.");
    lokal.uebersetzungHinzufuegen ("Passwortwiederholung falsch",
            "Le nouveau mot de passe et le mot de passe " + 
			"ne correspondent pas repetee.");
    lokal.uebersetzungHinzufuegen ("Buch ausgeliehen",
        "Le livre est deja en pret!");
    lokal.uebersetzungHinzufuegen ("Mahngebuehr bezahlt",
        "Les frais de retard est affichee. Montant demande: ");
    lokal.uebersetzungHinzufuegen ("Praesenzexemplar nicht ausleihbar",
            "Copie a partir de la salle de lecture ne " +
			"peuvent pas etre empruntes!");
    lokal.uebersetzungHinzufuegen ("Reserviert",
        "Cette copie est reservee, le pret ne peut etre prolongee.");
  }


  public Lokalisierung gibLokalisierung ()
  {
    return lokal;
  }

}
